From the Firehose

Стратегія для SSH ключів

Вибір стратегії для SSH-ключів

  1. Один ключ для всіх серверів
    • Переваги:
      • Простота (не потрібно керувати кількома ключами).
      • Легко додавати нові сервери (просто копіюєте той самий публічний ключ).
    • Недоліки:
      • Якщо ключ буде скомпрометовано, зламані всі сервери.
      • Немає ізоляції між серверами.
  2. Окремий ключ для кожного сервера
    • Переваги:
      • Безпека (компрометація одного ключа не впливає на інші сервери).
      • Можливість відкликати доступ лише до певного сервера.
    • Недоліки:
      • Складніше керувати (особливо якщо серверів багато).

Як створити ключ з іншою назвою (для окремих серверів)

  1. Генерація ключа зі своєю назвою

    Використовуйте параметр -f для вказання шляху до файлу:

    ssh-keygen -t ed25519 -f ~/.ssh/my_server_key -C "коментар"
    
  • Це створить:

    • Приватний ключ: ~/.ssh/my_server_key
    • Публічний ключ: ~/.ssh/my_server_key.pub
  • Копіювання ключа на сервер

    Використовуйте ssh-copy-id з явним вказанням ключа:bash

ssh-copy-id -i ~/.ssh/my_server_key.pub username@server_ip

Або вручну (як у вашому прикладі):

cat ~/.ssh/my_server_key.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
  • Підключення з вибором ключа

    Додайте параметр -i до команди ssh:

    bash

ssh -i ~/.ssh/my_server_key username@server_ip

Як уникнути перезапису id_ed25519

  • SSH за замовчуванням використовує ключі зі стандартними іменами (id_ed25519, id_rsa тощо).
  • Якщо ви створюєте ключ з іншою назвою (наприклад, my_server_key), вам завжди потрібно вказувати його явно через i.

Покращений підхід: конфіг SSH (~/.ssh/config)

Щоб не вводити -i щоразу, створіть/відредагуйте файл ~/.ssh/config:

Host my-server-alias
    HostName server_ip
    User username
    IdentityFile ~/.ssh/my_server_key

Тепер підключайтесь просто:

ssh my-server-alias

Висновок: що вибрати?

  • Для персонального використання (наприклад, домашні сервери) – одного ключа достатньо.
  • Для продакшн-середовищ або критичних серверів – окремі ключі + ~/.ssh/config для зручності.
  • Якщо ви хочете максимальної безпеки – ключі на рівні серверів/проєктів + регулярне обертання (заміна) ключів.

Важливо: Ніколи не використовуйте один ключ для серверів з різним рівнем конфіденційності (наприклад, тестовий і банківський сервер).

Category: Linux | Comments: 0

Comments: 0

About

Customize this section to tell your visitors a little bit about your publication, writers, content, or something else entirely. Totally up to you.